#调用方法的格式 object.method(arguments)
#方法append用于将一个对象附加到列表末尾
lst = [1, 2, 3];#list是内置函数,命名不能使用
lst.append(4);
print(lst)
#方法clear就地清空列表的内容
lst.clear() #等价于切片赋值语句lst[:] = []
print(lst)
#通过“=”会使=两边的列表产生关联，但copy不会，下面代码可以看两种对比
#通过=连接
a = [1, 2, 3] ;
b = a ;
b[1] = 4 ;
print(a);#这里的a输出的是[1, 4, 3]
#通过copy复制列表
c = [1, 2, 3];
d = c.copy();
d [1] = 4;
print(c);
#方法count计算指定的元素在列表中出现了多少次
y = ['to', 'be', 'or', 'not', 'to', 'be'].count('to');
print(y);
x = [[1, 2], 1, 1, [2, 1, [1, 2]]];
z = x.count(1);
print(z);
w = x.count([1, 2]) ;
print(w);#z和w的结果可以看出，元素的边界与分级
#方法extend让你能够同时将多个值附加到列表末尾。
e = [1, 2, 3];
f = [4, 5, 6];
e.extend(f);#extend方法没有返回值
print(e);
#用+的拼接方式，对比方法extend
g = [1, 2, 3] ;
h = [4, 5, 6] ;
j = g + h ;
print(j);
print(g);#用+不会影响原有的列表，需要用一个新的序列来获取结果（第36行代码j = g + h），效率低于extend
#方法index在列表中查找指定值第一次出现的索引
knights = ['We', 'are', 'the', 'knights', 'who', 'say', 'ni']
i = knights.index('who');
print(i);
#方法insert用于将一个对象插入列表。
numbers = [1, 2, 3, 5, 6, 7]
numbers.insert(3, 'four')
print(numbers)
#等效insert代码
#numbers = [1, 2, 3, 5, 6, 7]
#numbers[3:3] = ['four']
#方法pop从列表中删除一个元素（末尾为最后一个元素），并返回这一元素
m = [1,2,3];
m.pop()
print(m)
#方法remove用于删除第一个为指定值的元素。
y = ['to', 'be', 'or', 'not', 'to', 'be']
y.remove('to');
print(y);#第二个to就被保留了下来
#方法reverse按相反的顺序排列列表中的元素
numbers = [1, 2, 3, 5, 6, 7]
numbers.reverse()
print(numbers);
#方法sort用于对列表就地排序，与函数sorted有一些使用区别，sort方法没有返回值，不能使用y = x.sort();
x = [4, 6, 2, 1, 7, 9]
y = x.copy()#通过 = 进行关联
y.sort()
print(x)
print(y)
#函数sorted的使用方法
x = [4, 6, 2, 1, 7, 9]
y = sorted(x)
print(x)
print(y)
#高级排序：方法sort接受两个可选参数：key和reverse
#key 使用它来为每个元素创建一个键，再根据这些键对元素进行排序
word = ['aardvark', 'abalone', 'acme', 'add', 'aerate'];
word.sort(key=len);#将参数key设置为函数len
print(word);
#reverse需将其指定为一个真值（True或False),以指出是否要按相反的顺序对列表进行排序
num = [4, 6, 2, 1, 7, 9] ;
num.sort(reverse= False);#True或False需要大写
print(num);
num.sort(reverse= True);
print(num);